package com.sss.hloster02;

public class TestDriver01 {

	public static void main(String[] args) {
		test01();
	}

	private static void test01() {
		// 声明一个旧的数组
		int[] arr0 = new int[] { 1, 2, 3, 4, 5 };
		System.out.println("打印旧数组：");
		// 打印旧的数组
		// 增强型的for循环
		for (int iVcr : arr0) {
			System.out.print("  " + iVcr);
		}
		// 换行
		System.out.println();
		// 对数组进行扩容处理
		int[] arrNew = resizeArr(arr0, 10);
		// 将数组名变更为指向新数组即可
		// arr0 = arrNew;
		System.out.println("打印新数组：");
		// 增强型for循环
		for (int iVcr : arrNew) {
			System.out.print("  " + iVcr);
		}
		// 换行
		System.out.println();
	}

	/**
	 * 一维数组扩容
	 * 
	 * @param arrOld 旧数组
	 * @param newLen 新数组
	 * @return 新数组
	 */
	public static int[] resizeArr(int[] arrOld, int newlen) {
		// 检测扩容的长度和原数组的长度大小关系
		if (arrOld != null) {
			// 获取旧的数组长度
			int oldlen = arrOld.length;
			// 扩容的数组的长度比旧数组的长度还小，则修改扩容长度为旧数组的两倍
			if (newlen <= oldlen) {
				newlen = oldlen * 2;
			}
		}
		// 根据长度创建一个新数组
		int[] arrNew = new int[newlen];
		// 将旧数组的内容复制到新数组的对应位置
		if (arrOld != null) {
			// 使用for循环
			for (int i = 0; i < arrOld.length; i++) {
				arrNew[i] = arrOld[i];

			}
		}
		// 返回新数组
		return arrNew;
	}
}
